Location based recommendation method for mobile station content

ABSTRACT

A location based method of offering a recommendation of content to a user of a mobile station includes receiving information identifying a current location for the mobile station. Then, in a content usage database, records of other mobile stations that have recently been near that location are identified. For each identified record of another mobile station, content resident on an used by the other mobile station in the content usage database is identified. Then, for example, responsive to at least one inquiry received from the mobile station, a recommendation is transmitted through a wireless communications network to the mobile station of the user. The recommendation includes information about the identified content resident on and used by one or more of the other mobile stations.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.13/243,597, filed Sep. 23, 2011, the contents of which is incorporatedherein by reference.

BACKGROUND

In recent years, mobile communication services have expanded andincreased in popularity around the world. Many advanced networks offerwireless mobile communication service for voice calls, mobile messagingservices (e.g., text and/or multimedia) and data communications. Thedata services, for example, enable surfing the world wide web, e.g., viaa browser. The speeds of the data communications services have steadilyincreased as service providers have migrated the networks to newergeneration technologies with broadband data communication capabilities,and the mobile stations have steadily advanced to take advantage of thenew network technologies. The data communication capabilities of themobile stations and the broadband data communication services offered bythe networks enable users to perform more and more tasks from theirmobile stations.

Shopping has also evolved with the evolution to telecommunicationstechnologies. On-line shopping is now commonplace, and increasingly,users can do their on-line shopping using their mobile stations.Although on-line shopping can be for traditional goods or services,on-line shopping from a mobile station is often related to shopping forcontent for downloading to the mobile station. Examples of mobilestation content items include, without limitation, media, games,messaging, social networks, stores, and any other applications orinformation for use on or with a mobile station.

Mobile application stores traditionally provide the following options toallow a user to discover applications: 1) search by keywords, 2) browsecategories such as Games, Business, Lifestyle, Shopping, Travel & Local,etc., or sub-categories such as Top Paid, Top Free, recent arrival, 3)recommendations, based on (a) the store's pick, (b) the user's downloadhistory, or (c) Context Relevance. Applications are then listed based onthe number of downloads.

When traveling, relocating, or otherwise exploring an unfamiliarlocation, relevant mobile station content may be difficult to find. Atleast some content may be of particular interest to the local community,with minimal popularity outside the area. For example, a parking spotfinder in San Francisco, or a Chicago transit schedule would likely beknown to and used by the local community and may be of interest totravelers visiting those cities. However, visitors may not know or thinkabout the availability of such applications. Moreover, it may bedifficult to ascertain quickly the mobile station content items that areof particular interest to those in the vicinity or anticipated vicinityof the user, and thus might also be of interest to the user.

Hence, a need exists for improved technologies for distributingrecommendations, for example, which provide a user with an indication ofmobile station content that is popular with nearby users of mobilestations.

BRIEF DESCRIPTION OF THE DRAWINGS

The drawing figures depict one or more implementations in accord withthe present teachings, by way of example only, not by way of limitation.In the figures, like reference numerals refer to the same or similarelements.

FIG. 1 is a high-level functional block diagram of an exemplary systemfor implementing a location based method, for example, for providingrecommendations about mobile station content for downloading to a mobilestation.

FIG. 2 is a flow chart of an exemplary location based method of offeringrecommendations to a user of a mobile station.

FIG. 3 is a flow chart of another exemplary location based method ofoffering recommendations to a user of a mobile station.

FIG. 4 is a simplified functional block diagram of a computer that maybe configured as a host or server.

FIG. 5 is a simplified functional block diagram of a personal computeror other work station or terminal device.

DETAILED DESCRIPTION

In the following detailed description, numerous specific details are setforth by way of examples in order to provide a thorough understanding ofthe relevant teachings. However, it should be apparent to those skilledin the art that the present teachings may be practiced without suchdetails. In other stances, well known methods, procedures, components,and/or circuitry have been described at a relatively high-level, withoutdetail, in order to avoid unnecessarily obscuring aspects of the presentteachings.

The various methods disclosed herein relate to providing recommendationof content to a user of a mobile station. By using the device'slocation, a new dimension may be provided to application stores forusers to discover mobile applications. A new category or subcategory canbe provided in the store so applications are listed based on the numberof their nearby users. Thus, the user or application store client canpick from applications that have the most users in the vicinity, thehighest ratings by users in the vicinity, the most frequent use in thevicinity. Here vicinity, which may be set by the user, can be a zipcode, city or country, or a set distance from the current location ofthe mobile station of the user. The vicinity may also be an anticipatedvicinity or expected future location that the user specifies by droppinga pin on a map, entering a latitude and longitude, entering an address,or otherwise indicating. Also, the number of users can be determinedbased on a user-selected (or otherwise predetermined) time period suchas an hour, a day, a week, or a month. In some embodiments, the timeperiod may be instantaneous, providing information at the time of therequest. Alternatively, the time period may be cumulative, providinginformation over a length of time preceding the request.

Regional applications, location-aware applications, or hyper localapplications are increasing in popularity, and usage of mobileapplications is increasing. With these two trends in mind, addinglocation to application discovery can create a virtuous circle betweenthe end user, the application store and the developer. The end user candiscover applications that are most relevant to their needs, forexample, looking for a parking space finder application in SanFrancisco. The application store can get more users to downloadapplications because they can discover the ones they need faster—fasterdiscovery likely results in more downloads. The developer can benefitbecause their application has a fair shot at being discovered if theyare good at a local level—the better they are at local applications, themore users use that application, and the more likely the applicationwill be discovered.

One exemplary method involves the user activating an application storeand selecting a menu entry indicating nearby mobile station content(e.g., “apps around me”). The user also indicates a set distance (e.g.,“within one mile of my current location”), and a set time frame (e.g.,“within the last hour”). An application store client on the user'smobile station obtains the current location of the mobile station andsends the location, along with the set distance and set time frame, toan application store server. The application store server returns, tothe application store client, information about applications used bymobile stations that were recently (e.g., within the last hour) in thevicinity of (e.g., within one mile) the user's mobile station. Thevicinity may be a fixed location, set at a given point in time, or thevicinity may be dynamic, allowing for updates as the mobile stationmoves from point to point. The application store client then displays alisting of applications for the user to select for downloading. Prior tothe user selecting the menu entry, probes gather information from mobilestations, including location, time, and content present. Thisinformation is stored in a database for use when the user activates theapplication store and selects the menu.

From the service provider's perspective, an exemplary method involvesidentifying the current location of the mobile station of the user.Then, in an application usage database, records of other mobile stationspresent within a set distance of the location within a set time frameare identified. For each of the identified records, applications on thecorresponding mobile station are identified in the application usagedatabase. Then, information about the usage of applications istransmitted through a network to the user's mobile station.

In another exemplary method, the current location of the mobile stationof the user is obtained by an application store server, along with atime frame restriction and a distance restriction. The location, timeframe restriction, and the distance restriction are transmitted to anapplication usage server. The application usage server determines a listof software applications used by mobile stations present within the timeframe restriction and within the distance restriction of the currentlocation of the mobile station. The application usage server thentransmits the list of software applications to the application storeserver. The application store server receives and filters the list ofsoftware applications before transmitting the filtered list of softwareapplications for display on the mobile station of the user.

As a result of the disclosed methods, a user can learn about mobilestation content items, such as software applications or other content,resident on and used by other nearby users. Further, developers ofmobile station content items may benefit from increased local exposure,when geographic exposure is absent, either because of the nature of thecontent or because of the limited exposure generally inherent in a newcontent item.

Other concepts relate to unique systems and software for implementingthe techniques to recommend mobile station related content based on thecontent used by another nearby mobile station user.

Reference now is made in detail to the examples illustrated in theaccompanying drawings and discussed below. FIG. 1 illustrates anexemplary system 10 for implementing a location based method. System 10offers a recommendation of content to a user 12 of a mobile station 13.The system 10 has an interface 22 a for communications with the mobilestation 13 via a wireless communication network 15. The interface 22 acan be part of a content download server 22 (e.g., an application storeserver). The system 10 also has at least one processing 22 b coupled tothe interface 22 a, with at least one storage device 22 c accessible tothe processor 22 b. The system 10 has a content usage database 18 (e.g.,an application usage database), associated with a content usage server24. The content usage database 18 includes records for other mobilestations 13′ containing information identifying content transmitted,transmission time, and location of the other mobile stations 13′ forcontent delivered to particular ones of the respective other mobilestations 13′. Such content may include software applications, wallpaper,ringtones, or other content.

Execution of the programming by the processor 22 b configures the system10 to perform functions. The functions include identifying a currentlocation of the mobile station 13, as illustrated at step 2 below. Thefunctions further include identifying, in the content usage database 18,the records of the other mobile stations 13′ that have been within a setdistance of the identified location at any time within a set time frame,illustrated at step 4 below. The functions also include identifying, foreach identified record of another mobile station 13′, content residenton and used by the other mobile station 13′ in the content usagedatabase 18, also illustrated at step 4 below. Responsive to at leastone inquiry received from the mobile station 13, the functions includetransmitting, through the wireless communications network 15 to themobile station 13 of the user 12, a recommendation including informationabout the identified content resident on and used by one or more of theother mobile stations 13′, illustrated generally at steps 7 and 8 below.The recommendation may include, for example, presentation of the mostpopular content within a set distance and a set time frame of thecurrent location of the mobile station 13.

In one example, the content download server 22 is configured to performfunctions including functions to identify a current location of themobile station 13 of the user 12, illustrated at step 2 below. Thecontent download server 22 is also configured to perform functions toreceive a time frame restriction and a distance restriction via manualactuation of the user 12 of the mobile station 13, also illustrated atstep 2 below. In this example, the content download server 22 isconfigured to transmit the location, the time frame restriction, and thedistance restriction to the content usage server 24, as illustrated atstep 3 below, and receive, from the content usage server 24, a list ofcontent resident on and used by other mobile stations 13′ present withinthe time frame restriction and within the distance restriction of theidentified location, as illustrated at step 5 below. The contentdownload server 22 is also configured to perform functions to transmitthe list of content for display on the mobile station 13 of the user 12,as illustrated at step 7 below.

In another example, which may be used in conjunction with the previousexample, the content usage server 24 is configured to perform functionsincluding functions to obtain the location, the time frame restriction,and the distance restriction from the content download server 22, asillustrated step 3 below. The content usage server 24 is also configuredto refer to the content usage database 18 to create the list of contentresident on and used by the other mobile stations 13′ deemed to bepresent within the time frame restriction and within the distancerestriction of the identified location. The content usage server 24 canalso be configured to cache results for future requests for the sameregion. The content usage database 18 is populated by probes 28 thattransmit location, time, and content information from the other mobilestations 13′, as illustrated at step 1′ below. Probes 28 may be builtinto an application and collect the location and a uniqueidentification, such as mobile directory number from mobile stations 13′and submit the information to the content usage server 24 each time theapplication is used. Probes 28 may be standalone, or probes 28 maycoexist with other libraries used by the application. The content usageserver 24 of this example is also configured to transmit to the contentdownload server 22, the list of content resident on and used by theother mobile stations 13′ present within the time frame restriction andwithin the distance restriction of the identified location, asillustrated at step 5 below.

The content download service application client 20 can be for executionon the mobile station 13. The content download service applicationclient 20 shows the user 12 the option to view content on other mobilestations 13′ in the vicinity of mobile station 13. The content downloadservice application client 20 collects the time frame and locationrestrictions or preferences from the user 12 and determines the currentlocation of the mobile station 13. The content download serviceapplication client 20 also retrieves and displays the list of contentfrom the content download server 22 by submitting the user's locationand time frame preferences.

The probes 28 may be a standalone application, submitting location ofmobile stations 13 and application usage information to the contentusage server 22 and/or the content usage database 18. Alternative, theprobes 28 may be built into an application that registers itself withthe content usage server 22 and/or the content usage database 18periodically when in use, or upon startup. In other embodiments, theprobes 28 may piggy back on an existing function. For example, if anapplication needs to register itself with a server when it obtains alocation, the associated registration information residing on the servermay be shared with the content usage server 22 and/or the content usagedatabase 18, allowing the content usage server 22 and/or the contentusage database 18 to be effectively added to that server.

Mobile station 13 can take the form of portable handsets, smart-phonesor personal digital assistants, although they may be implemented inether form factors. Program applications can be configured to execute onmany different types of mobile stations 13. For example, a mobilestation application can be written to execute on a binary runtimeenvironment for BREW-based mobile station, a Windows Mobile based mobilestation, Android, I-Phone, Java Mobile, or RIM based mobile station suchas a BlackBerry or the like. Some of these types of devices can employ amulti-tasking operating system.

Those skilled in the art presumably are familiar with the structure,programming and operations of the various types of mobile stations.

Referring now to FIG. 2, with step reference numerals also present incircles in FIG. 1, a location based method of offering a recommendationof content to the user 12 of the mobile station 13 is shown. At step 1,the user 12 requests the system 10 to show content (e.g., applications)present on mobile stations 13′ of others in the vicinity of the user 12,using a content download service application client 20 (e.g., anapplication store client). The request may be for content consumed bynearby mobile stations 13′ with restrictions such as time frame anddistance. Prior to, simultaneous with, or after the request by the user12, at step 1′, content probes 28 submit information from the othermobile stations 13′ to the content usage database 18. The probes 28 maybe triggered when an application is activated, periodically via alibrary in the calling application, or at some other predetermined time.Such information includes location information and unique identifiersfor each of the other mobile stations 13′. The unique identifiers mayprovide an indication of the application and/or the user, allowingdifferentiation between one user launching the application multipletimes and multiple users launching the application. Step 1′ may alsoinclude recording in the content usage database 18, in association withlocations of each of the other mobile stations 13′, identification ofthe time at which the mobile stations 13′ were at each location. Step 1′may further include recording, in the content usage database 18, and inassociation with locations of the other mobile stations 13′,identifications of content resident on and used by the other mobilestations 13′. Thus, the content usage database 18 maintains a record ofwhich content is on a particular other mobile station 13′, and where theother mobile station 13′ is, or whether it is in the vicinity, at agiven time. The probes 28 may provide information periodically fromother mobile stations 13′ of users who have agreed to share information.The users may agree to share information via opting in explicitly,opting in implicitly as part of a download agreement, opting in when anapplication is launched, or otherwise. Thus, information of the othermobile stations 13′ may be updated hourly, every 30 minutes, or at someother set interval. Alternatively, the information of the other mobilestations 13′ may be updated only when one of the variables changes. Forexample, an update may be provided when location of the other mobilestation 13′ changes (i.e., a new location for the other mobile station13′ is recorded), when content is changed (e.g., an application isupdated), or upon another triggering event.

At step 2, the content download service application client 20 sendslocation information for the mobile station 13 of the user 12, alongwith restrictions for time frame and distance, to the content downloadserver 22. Before step 3, a time frame restriction and a distancerestriction are provided, either explicitly by the user, or otherwise.In some instances, the user 12 may enter a time frame restriction and/ora distance restriction into the mobile station 13 with each inquiry.Alternatively, the user 12 may enter a time frame restriction and/or adistance restriction into the mobile station 13 once, at the time of thefirst inquiry. In some instances, the user 12 may not enter a time framerestriction or a distance restriction at all, but instead may use apreset or default setting for either or both. For example, “show meapplications used within once mile of my current location in the past 4hours.” Some adaptations may be provided automatically, such asadjustment of time to local time.

At step 3, after receiving time frame and distance restrictions from themobile station 13, the content download server 22 sends a request withlocation information for the mobile station 13 of the user 12, alongwith restrictions for time frame and distance, through a datacommunication network 26 (e.g., a private/secure network, for IPcommunications between servers) to a content usage server 24 (e.g., anapplication usage server).

At step 4, the content usage server 24 determines a list of contentbased on the location information and the restrictions, and cachedresults stored in the content usage database 18 in conjunction with aprevious request for the same region. For example, in a denselypopulated area, multiple requests may be sent at approximately the sametime with identical or similar location information and identical orsimilar restrictions. Caching may eliminate the need to recalculateoverlapping results. Step 4 may include identifying, in the contentusage database 18, the records of the other mobile stations 13′ thathave been within a set distance of the identified location at any timewithin a set time frame. The identification of step 4 may be performedafter receiving the set distance and/or the set time frame. Step 4 mayfurther include identifying, for each identified record of anothermobile station 13′, content resident on and used by the other mobilestation 13′ in the content usage database 18. The information about thecontent may include the number of other mobile stations 13′ that haveused a particular software application. The information about thecontent may additionally or alternatively include a difference indistance and/or a difference in time between the mobile station 13 ofthe user 12 and one or more other mobile stations 13′ that have used aparticular software application. Information about distance between themobile station 13 and the mobile stations 13′ may allow the user 12 toselect applications of interest in a particular portion of the setdistance without modifying the set distance. For example, a weatherforecast application may be the most popular application in the setdistance, but a menu application may be very popular in the immediatevicinity of the restaurant for which the menu application was created.If the user 12 were nearby and discovered the popularity of the menuapplication, the user 12 might be interested in the application and therestaurant. Likewise, information about time lapse between thecollection of information about mobile stations 13′ and the currentlocation of the mobile station 13 may allow the user 12 to selectapplications of interest at a particular time in the set time frame. Forexample, the menu application may become suddenly less popular when therestaurant closes, even if the closing time was within the set timeframe. Thus, the user 12 may discover weaning popularity and decide togo elsewhere. With information on difference in distance and/ordifference in time, the user 12 may determine applications useful at aneven more exact time and place than the set distance and set time framewould otherwise permit. Popularity may be indicated either by display ofactual number of users, by a percentage of users, or by anotherindicator.

At step 5, the content usage server 24 returns the list of content tothe content download server 22. After receiving a list of content, thecontent download server 22 then filters the list at step 6. Thus, theinformation about the content may be filtered before it is transmittedto the mobile station 13 or the user 12. Filtering the information mayinclude comparing a list with information identifying the identifiedcontent resident and used by on one or more of the other mobile stations13′ to information identifying content already on the mobile station 13of the user 12. Thus, only new content would be resented to the user 12.Various categories may provide the user with choices regarding thefiltering. For example, a “business” category may have “used around me,”“new,” “most downloaded,” or other tabs, allowing the client to managethe presentation of filtered results. Other filtering may includeelimination of adult content (age restriction), elimination of contentexceeding a preset cost limit, other reduction in a list of content asdesired by the user 12 or other interested party (such as a parent ofthe user 12), content categories, user preset preferences, or otherparameters.

At step 7, the content download server 22 returns a filtered list ofcontent to the content download service application client 20, which, atstep 8 transmits or otherwise presents the list to the mobile station 13of the user 12 as content in use in the vicinity of the user 12. Thetransmission of the filtered list may include transmitting onlyinformation about content not already on the mobile station 13 of theuser 12, as identified by the step of filtering.

In another example (not illustrated), the content download server 22 andthe content usage server 24 can be merged into one component, in whichcase, steps 3 and 5 are omitted and steps 4 and 6 are performed by thesingle device.

In a particular example, illustrated in FIG. 3, a location based methodof offering a recommendation of content to the user 12 of the mobilestation 13 includes identifying a current location of the mobile station13 of the user 12, illustrated at step 100. To obtain informationidentifying the current location of the mobile station 13 of the user12, a location sensing system may be configured to sense the currentlocation of the mobile station 13. The location sensing system may be ofany type. For example, it may include a Global Positioning System (GPS)chip set configured to determine the geographic location of the mobilestation 13 based on positioning signals from global satellites. Thelocation sensing system may, in addition or instead, include anarchitecture that uses both GPS as well as network elements to determineposition, referred to as Assisted GPS (AGPS). The location sensingsystem can, in addition or instead, use cell tower triangulation todetermine position based on the nearest cell tower identification.

At step 101, in the content usage database 18, records of one or moreother mobile stations 13′ are identified. The identified records arethose records of other mobile stations 13′ that have been within a setdistance of the identified location at any time within a set time frame.At step 102, for each identified record of another mobile station 13′meeting the requirements set forth in step 101, the content resident onand used by the other mobile station 13′ is identified in the contentusage database 18. At step 103, responsive to at least one inquiryreceived from the mobile station 13, a recommendation is transmittedthrough the wireless communication network 15 to the mobile station 13of the user 12. The recommendation includes information about theidentified content resident on and used by one or more of the othermobile stations 13′.

While the disclosure describes methods of showing applications based onthe number of user's around a location, potentially the applicationstore can combine this information into their existing recommendationalgorithms, as a result, applications with user numbers in a locationbecome an input parameter for a recommendation engine. Thus, therecommendation may be displayed on the mobile station 13 as the mostpopular downloads listed in order of popularity, or in another ordersuch as by price, by user rating, by popularity growth rate, by releasedate, or by any other sorting parameter.

It is believed that the combination of collecting application usage datafrom devices, then dynamically determining a list of applications in aregion based on number of users, and finally applying this data topromote applications in the application store provides numerousadvantages.

As shown by the above discussion, functions relating to the enhancedrecommendations of applications or other mobile station content itemsmay be implemented on computer connected for data communication via thecomponents of a packet data network, operating as the various serversand/or client mobile stations as shown in FIG. 1. Although specialpurpose devices may be used, such devices also may be implemented usingone or more hardware platforms intended to represent a general class ofdata processing device commonly used to run “server” programming so asto implement the content recommendation related functions discussedabove.

As known in the data processing and communications arts, ageneral-purpose computer typically comprises a central processor orother processing device, an internal communication bus, various types ofmemory or storage medial (RAM, ROM, EEPROM, cache memory, disk drivesetc.) for code and data storage, and one or more network interface cardsor ports for communication purposes. The software functionalitiesinvolve programming, including executable code as well as associatedstored data, e.g., files used for the location based recommendation. Thesoftware code is executable by the general-purpose computer thatfunctions as a server and/or that functions as a terminal device. Inoperation, the code is stored within the general-purpose computerplatform. At other times, however, the software may be stored at otherlocations and/or transported for loading into the appropriategeneral-purpose computer system. Execution of such code by a processorof the computer platform enables the platform to implement themethodology for location based recommendations, in essentially themanner performed in the implementations discussed and illustratedherein.

FIGS. 4 and 5 provide functional block diagram illustrations of generalpurpose computer hardware platforms. FIG. 4 illustrates a network orhost computer platform, as may typically be used to implement a server.FIG. 5 depicts a computer with user interface elements, as may be usedto implement a personal computer or other type of work station orterminal device, although the computer of FIG. 5 may also act as aserver if appropriately programmed. It is believed that those skilled inthe art are familiar with the structure, programming and generaloperation of such computer equipment and as a result the drawings shouldbe self-explanatory.

A server, for example, includes a data communication interface forpacket data communication. The server also includes a central processingunit (CPU), in the form of one or mere processors, for executing programinstructions. The server platform typically includes an internalcommunication bus, program storage and data storage for various datafiles to be processed and/or communicated by the server, although theserver often receives programming and data via network communications.The hardware elements, operating systems and programming languages ofsuch servers are conventional in nature, and it is presumed that thoseskilled in the art are adequately familiar therewith. Of course, theserver functions may be implemented in a distributed fashion on a numberof similar platforms, to distribute the processing load.

A computer type user terminal device, such as a PC or tablet computer,similarly includes a data communication interface CPU, main memory andone or more mass storage devices for storing user data and the variousexecutable programs (see FIG. 5). A mobile station type user terminalmay include similar elements, but will typically use smaller componentsthat also require less power, to facilitate implementation in a portableform factor. The various types of user terminal devices will alsoinclude various user input and output elements. A computer, for example,may include a keyboard and a cursor control/selection device such as amouse, trackball, joystick or touchpad; and a display for visualoutputs. A microphone and speaker enable audio input and output. Somesmartphones include similar but smaller input and output elements.Tablets and other types of smartphones utilize touch sensitive displayscreens, instead of separate keyboard and cursor control elements. Thehardware elements, operating systems and programming languages of suchuser terminal devices also are conventional in nature, and it ispresumed that those skilled in the art are adequately familiartherewith.

Hence, aspects of the methods of offering location based recommendationsto a user of the mobile station outlined above may be embodied inprogramming. Program aspects of the technology may be thought of as“products” or “articles of manufacture” typically in the form ofexecutable code and/or associated data that is carried on or embodied ina type of machine readable medium. “Storage” type media include any orall of the tangible memory of the computers, processors or the like, orassociated modules thereof, such as various semiconductor memories, tapedrives, disk drives and the like, which may provide non-transitorystorage at any time for the software programming. All or portions of thesoftware may at times be communicated through the Internet or variousother telecommunication networks. Such communications, or example, mayenable loading of the software from one computer or processor intoanother. Thus, another type of media that may bear the software elementsincludes optical, electrical and electromagnetic waves, such as usedacross physical interfaces between local devices, through wired andoptical landline networks and over various air-links. The physicalelements that carry such waves, such as wired or wireless links, opticallinks or the like, also may be considered as media bearing the software.As used herein, unless restricted to non-transitory, tangible “storage”media, terms such as computer or machine “readable medium” refer to anymedium that participates in providing instructions to a processor forexecution.

Hence, a machine readable medium may take many forms, including but notlimited to, a tangible storage medium, a carrier wave medium or physicaltransmission medium. Non-volatile storage media include, for example,optical or magnetic disks, such as any of the storage devices in anycomputer(s) or the like, such as may be used to implement the aspectsshown in the drawings. Volatile storage media include dynamic memory,such as main memory of such a computer platform. Tangible transmissionmedia include coaxial cables; copper wire and fiber optics, includingthe wires that comprise a bus within a computer system. Carrier-wavetransmission media can take the form of electric or electromagneticsignals, or acoustic or light waves such as those generated during radiofrequency (RF) and infrared (IR) data communications. Common forms ofcomputer-readable media therefore include for example: a floppy disk, aflexible disk, hard disk, magnetic tape, any other magnetic medium, aCD-ROM, DVD or DVD-ROM, any other optical medium, punch cards papertape, any other physical storage medium with patterns of holes, a RAM, aPROM and EPROM, a FLASH-EPROM, any other memory chip or cartridge, acarrier wave transporting data or instructions, cables or linkstransporting such a carrier wave, or any other medium from which acomputer can read programming code and/or data. Many of these forms ofcomputer readable media may be involved in carrying one or moresequences of one or more instructions to a processor for execution.

While the foregoing has described what is considered to be the best modeand/or other examples, it is understood that various modifications maybe made therein and that the subject matter disclosed herein may beimplemented in various forms and examples, and that the teachings may beapplied in numerous applications, only some of which have been describedherein. It is intended by the following claims to claim any and allapplications, modifications and variations that fall within the truescope of the present teachings.

Unless otherwise stated, all measurements, values, ratings, positions,magnitudes, sizes, and other specifications that ate set forth in thisspecification, including in the claims that follow, are approximate, notexact. They are intended to have a reasonable range that is consistentwith the functions to which they relate and with what is customary inthe art to which they pertain.

The scope of protection is limited solely by the claims that now follow.That scope is intended and should be interpreted to be as broad as isconsistent with the ordinary meaning of the language that is used in theclaims when interpreted in light of this specification and theprosecution history that follows and to encompass all structural andfunctional equivalents. Notwithstanding, none of the claims are intendedto embrace subject matter that fails to satisfy the requirement ofSections 101, 102, or 103 of the Patent Act, nor should they beinterpreted in such a way. Any unintended embracement of such subjectmatter is hereby disclaimed.

Except as stated immediately above, nothing that has been stated orillustrated is intended or should be interpreted to cause a dedicationof any component, step, feature, object, benefit, advantage, orequivalent to the public, regardless of whether it is or is not recitedin the claims.

It will be understood that the terms and expressions used herein havethe ordinary meaning as is accorded to such terms and expressions withrespect to their corresponding respective areas of inquiry and studyexcept where specific meanings have otherwise been set forth herein.Relational terms such as first and second and the like may be usedsolely to distinguish one entity or action from another withoutnecessarily requiring or implying any actual such relationship or orderbetween such entities or actions. The terms “comprises,” “comprising,”or any other variation thereof, are intended to cover a non-exclusiveinclusion, such that a process, method, article, or apparatus thatcomprises a list of elements does not include only those elements butmay include other elements not expressly listed or inherent to suchprocess, method, article, or apparatus. An element proceeded by “a” or“an” does not, without further constraints, preclude the existence ofadditional identical elements in the process, method, article, orapparatus that comprises the element.

The Abstract of the Disclosure is provided to allow the reader toquickly ascertain the nature of the technical disclosure. It issubmitted with the understanding that it will not be used to interpretor limit the scope or meaning of the claims. In addition, in theforegoing Detailed Description, it can be seen that various features aregrouped together in various embodiments for the purpose of streamliningthe disclosure. This method of disclosure is not to be interpreted asreflecting an intention that the claimed embodiments require morefeatures than are expressly recited in each claim. Rather, as thefollowing claims reflect, inventive subject matter lies in less than allfeatures of a single disclosed embodiment. Thus the following claims arehereby incorporated into the Detailed Description, with each claimstanding on its own as separately claimed subject matter.

Appendix: Acronym List

The description above has used a large number of acronyms to refer tovarious services, messages and system components. Although generallyknown, use of several of these acronyms is not strictly standardized inthe art. For the convenience of the reader, the following listcorrelates terms to acronyms, as used by way of example in the detaileddescription above.

AGPS—Assisted Global Positioning System

BREW—Binary Runtime Environment for Mobile

CD-ROM—Compact Disk Read Only Memory

CPU—Central Processing Unit

DVD—Digital Video Disk

DVD-ROM—Digital video Disk Read Only Memory

EPROM—Erasable Programmable Read Only Memory

EEPROM—Electrically Erasable Programmable Read Only Memory

FLASH-EPROM—Flash Erasable Programmable Read Only Memory

GPS—Global Positioning System

IP—Internet Protocol

IR—Infrared

PROM—Programmable Read Only Memory

RAM—Random Access Memory

RF—Radio Frequency

RIM—Research In Motion

ROM—Read Only Memory

What is claimed is:
 1. A method comprising the steps of: identifying alocation for a mobile station; identifying, in a content usage database,records of one or more other mobile stations that have been within a setdistance of the identified location at any time within a set time frame;from each identified record of another mobile station, identifyingcontent resident on the other mobile station; and transmitting through awireless communications network to the mobile station a recommendationfor a user of the mobile station comprising information about theidentified content resident on the one or more other mobile stations. 2.The method of claim 1, comprising the step of: recording in the contentusage database, in association with locations of each of the othermobile stations, identification of the time at which that other mobilestation was at each location; and recording in the content usagedatabase, in association with the location of that other mobile station,identifications of content resident on and used at that other mobilestation.
 3. The method of claim 1, wherein the information about theidentified content includes: identification of a particular softwareapplication as content resident on the one or more other mobilestations; and the number of mobile stations that have used theparticular software application within the set distance of theidentified location at any time within the set time frame.
 4. The methodof claim 3, wherein the information about the identified contentincludes a difference in distance and time between the mobile station ofthe user and the one or more of the other mobile stations that have usedthe particular software application.
 5. The method of claim 1, whereinthe set distance and set time frame are specified via manual actuationof the mobile station of the user.
 6. The method of claim 1, comprisingthe step of filtering a list comprising the information about thecontent before transmitting the information about the content to themobile station of the user.
 7. The method of claim 6, wherein: the stepof filtering the information comprises comparing information identifyingthe identified content resident on one or more of the other mobilestations to information identifying content already on the mobilestation of the user, and the transmitting step comprises transmittingonly information about content not already on the mobile station of theuser as identified by the step of filtering.
 8. The method of claim 1,further comprising the steps of: receiving an inquiry from the mobilestation of the user, the inquiry including a time frame restriction anda distance restriction; and based on the identified location, the timeframe restriction, and the distance restriction, determining from thecontent usage database a list of software applications used by the othermobile stations present within the time frame restriction and within thedistance restriction of the identified location; wherein the step oftransmitting the recommendation comprises transmitting the list ofsoftware applications for display on the mobile station of the user. 9.The method of claim 8, wherein the identified location is a locationmanually specified by the user of the mobile device.
 10. The method ofclaim 8, wherein the distance restriction and the time frame restrictionare responsive to a manual actuation of the mobile device of the user.11. The method of claim 1, wherein the recommendation lists content, fordisplay on the mobile station, in order of popularity of usage on theone or more other mobile stations.
 12. The method of claim 1, whereinthe recommendation lists content, for display on the mobile station,according to a recommendation algorithm using a sorting parameter andincorporating the information about the identified content resident onone or more of the other mobile stations.
 13. A method comprising stepsof: receiving probe gathered information from mobile stationsidentifying locations of the mobile stations and content resident on andused on the mobile stations at the locations; from the probe gatheredinformation, creating records in a content usage database associatinglocations of the mobile stations with content resident on and used bythe other mobile stations; receiving, through a wireless communicationsnetwork, an inquiry from one mobile station identifying a location; inresponse to receiving the inquiry, determining, from the records in thecontent usage database, a list of content resident and used on othermobile stations within a set distance of the identified location; andtransmitting the list of content through the wireless communicationsnetwork to the one mobile station.
 14. The method of claim 13, whereinthe inquiry includes data identifying a distance restriction for use asthe set distance, the distance restriction being responsive to a manualactuation of the mobile device of the user.
 15. A method comprisingsteps of: identifying a location for a user's mobile station; receivinga user input of a distance restriction and a time frame via the user'smobile device; transmitting an inquiry, from the user's mobile stationthough a wireless communications network, the inquiry includingidentification of the location, the distance restriction and the timeframe; responsive to the inquiry, receiving at the mobile stationthrough the wireless communications network, a recommendation for theuser identifying content resident and used on one or more other mobilestations within the distance restriction of the identified locationwithin the time frame; and providing the received recommendation to theuser.
 16. The method of claim 15, wherein the identified location is acurrent location of the user's mobile station.
 17. The method of claim15, wherein the identified location is received via a user input of theidentified location.
 18. The method of claim 15, wherein the identifiedcontent resident and used on one or more other mobile stations comprisessoftware applications not resident on the user's mobile station.
 19. Themethod of claim 18, wherein the recommendation lists the softwareapplications based on the number of users near the identified location.20. The method of claim 18, wherein the step of providing the receivedrecommendation to the user comprises enabling the user to pick contentbased on at least one of: most users in the vicinity of the identifiedlocation, highest ratings by users in the vicinity, or most frequent usein the vicinity of the identified location.